Typically, a user may debug a software application using a debug process that interacts with the software application running on the same computer or through a proxy running on a different computer that interacts with the software application on the different computer. However, traditional debug processes do not resolve issues associated with debugging a software application that is distributed, for example, to run in parallel on different computers and/or on different threads.